package msu.ml.data;

import msu.ml.core.*;

/**
 * @author Reginald M Mead
 * @version 1.0
 * The IDataPreProcessor interface provides a means
 * by which data can be preprocessed before it is
 * used by the classifier. This is analogous to the
 * 'Filter' used in Weka. Likewise, multiple IDataPreProcessors
 * can be used in conjuction to produce a wide range of
 * effects. IDataPreProcessors work at the Instances level.
 *
 * @see AttributeRemovalPreProcessor
 * @see DiscretizationPreProcessor
 * @see DataCache
 */
public interface IDataPreProcessor 
{
	/**
    * Process a set of instances
	 * 
	 * @param data the data to be preprocessed
    * @return the processed data
	 */
	public NxInstances process(NxInstances data);

}
